home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Belgian Amiga Club - ADF Collection
/
BS1 part 26.zip
/
BS1 part 26
/
AMOS compiler.adf
/
Examples
/
Amosteroids_II.AMOS
/
Amosteroids_II.amosSourceCode
next >
Wrap
AMOS Source Code
|
1991-06-13
|
6KB
|
241 lines
'
' AMOSTEROIDS II By Gary Symons
' (c) Europress Software Ltd.
'
X=Execall(-132)
Dim X(31),Y(31)
Sam Bank 4
Screen Open 0,320,200,16,Lowres
Hide
Cls 0
Double Buffer
Screen Open 1,640,8,2,Hires
Colour 1,$FFF
Curs Off
Wait Vbl
Set Rainbow 1,1,16,"(1,-2,8)","(1,-2,8)","(1,-2,8)"
Rainbow 1,1,Y Hard(1,1),9
Do
Screen 1
Colour 1,$FFF
View
Print
Print
Centre "Amosteroids II (C) Copyright Gary Symons 1991."
Wait 100
Print
Centre "Both Mouse Keys To Exit During Game!"
Wait 100
Print
If Mouse Key=2
Print
Centre "Amosteroids II (C) G. Symons 1991."
Wait 200
Print
F=Fast Free : C=Chip Free : T=F+C
F$=" Fast:"+Str$(F)+" "+Hex$(F,8)
F$=F$+" Chip:"+Str$(C)+" "+Hex$(C,8)
F$=F$+" Total:"+Str$(T)+" "+Hex$(T,8)
Centre F$
Repeat : Until Mouse Key=0
End If
Print
Locate 0,0
Centre "AMOSTEROIDS II By Gary Symons"
E=100
S=0
Locate 0,0
Print "Energy:";
Inverse On
Print Space$(E/7);
Inverse Off
Print " ";
Locate 62,0
Print "Score:";S;
Screen 0
Paper 0 : Pen 1 : Clw
Curs Off : Flash Off : Wait Vbl
Fade 1
Wait 16
View
For I=0 To 15 : Set Bob I,1,, : Channel I To Bob I : Next I
A$=""
A$=A$+"LR8=X*RF;LR9=Y*RF;"
A$=A$+"A:P;LR8=R8+RX;LR9=R9+RY;LX=R8/RF;LY=R9/RF;"
A$=A$+"IX+16>0JB;LX=334;LR8=X*RF;LR9=R9/RF+R5;LR9=R9>200*200+R9*RF;B:"
A$=A$+"IX-16<320JC;LX=0-14;LR8=X*RF;LR9=R9/RF-R5;LR1=R9<0*200;LR9=R9-R1*RF;C:"
A$=A$+"IY+16>0JD;LY=214;LR9=Y*RF;LR8=R8/RF-R5;LR1=R8<0*320;LR8=R8-R1*RF;D:"
A$=A$+"IY-16<200JE;LY=0-14;LR9=Y*RF;LR8=R8/RF+R5;LR1=R8>320*320;LR8=R8+R1*RF;E:"
A$=A$+"JA"
'
For I=0 To 3
Bob I,Rnd(320),Rnd(200),$70
Amal I,A$
Amreg(I,5)=Rnd(320)
Next I
Bob 4,160,100,1
A$=""
A$=A$+"LX=160;LY=100;LRA=0;LRC=0;"
A$=A$+"A:P;"
A$=A$+"IRC=0JB;FR0=$50T$59:LA=R0;P;P;P;P;NR0;E:P;JE;B:"
A$=A$+"LR1=J1&4=4;LRA=J1&8=8+RA-R1;"
A$=A$+"LRA=RA&31;LR2=J1&1=1;LA=RA+RA+1-R2;"
A$=A$+"JA;"
'
Amal 4,A$
A$="O:FR0=0TZ(15);NR0;A0,($44,5)($43,5)($42,5)($41,5);LR1=Z(3);"
A$=A$+"M:LRF=16;"
A$=A$+"LR8=Z(3)-1;LR8=Z(512)=512*2*R8+R8;"
A$=A$+"LR9=Z(3)-1;LR9=Z(1)=0*2*R9+R9;"
A$=A$+"IR9=0JM;IR8=0JM;"
A$=A$+"LR7=0;LR4=X*RF;LR5=Y*RF;LR8=R8*RF;LR9=R9*RF;"
A$=A$+"A:P;IR7<>0JQ;"
A$=A$+"LR4=R8*RZ/7+R4+RX;LR5=R9*RZ/7+R5+RY;"
A$=A$+"LX=R4/RF;IX+8>0JB;LX=328;LR4=X*RF;B:IX<329JC;LX=7;LR4=X*RF;C:"
A$=A$+"LY=R5/RF;IY+8>0JD;LY=208;LR5=Y*RF;D:IY<209JE;LY=7;LR5=Y*RF;E:"
A$=A$+"JA;"
A$=A$+"Q:A1,($45,1);FR0=$45T$4F;LA=R0;P;P;NR0;LY=Z(127)+Z(63);LX=-34;"
A$=A$+"JO;"
'
For I=5 To 9
Bob I,Rnd(320),Rnd(200),$41
Amal I,A$
Next I
Bob 10,-50,100,$5B
A$="AU(LRM=X;LRN=Y;LR3=R3+1&31;IR3<>0X;"
A$=A$+"LR5=Z(15);LR5=Z(1)=1*R5*2+R5;X)"
A$=A$+"A:FR0=0T200;LA=$5B;LX=0-50;LY=207;NR0;IZ(127)>100JA;"
A$=A$+"LY=Z(63)+70;"
A$=A$+"LX=-20;LR4=2;IZ(127)<63JN;"
A$=A$+"LX=340;LR4=0-2;N:"
A$=A$+"LR7=0;LR8=X*RF;LR9=Y*RF;"
A$=A$+"A0,($5B,10)($5C,10)($5D,10)($5E,10)($5F,10)($60,10)($61,10)($62,10);"
A$=A$+"M:LR8=R4*RF+R8+RX;LR9=R5*2+R9+RY;"
A$=A$+"LX=R8/RF;LY=R9/RF;IR7<>0JB;P;IX>340JA;IX+25<0JA;IY>208JA;IY+25<0JA;JM;"
A$=A$+"B:A1,($63,1);P;P;FR0=$63T$6E;LA=R0;P;P;NR0;JA;"
'
Amal 10,A$
Bob 11,-50,100,$6F
A$=""
A$=A$+"A:LR7=0;LA=$6F;LX=0-32;P;IRM<0JA;LX=RM;LY=RN;LR4=Z(15)+1;LR5=Z(15)+1;"
A$=A$+"LR4=Z(1)=1*2*R4+R4;"
A$=A$+"LR5=Z(1)=1*2*R5+R5;"
A$=A$+"LR8=X*RF;LR9=Y*RF;"
A$=A$+"M:LR8=R4*4+R8+RX;LR9=R5*4+R9+RY;"
A$=A$+"LX=R8/RF;LY=R9/RF;IR7<>0JB;P;IX>310JA;IX+25<0JA;IY>208JA;IY+25<0JA;JM;"
A$=A$+"B:FR0=$46T$4F;LA=R0;P;P;NR0;JA;"
'
Amal 11,A$
A$="AU(IR2=0X;LR2=0;DA)"
A$=A$+"A:LX=-16;LY=-16;P;IRC=1JA;IRS<>R0JA;B:P;IJ1&16=0JB;"
A$=A$+"LX=160;LY=100;LR8=0-RJ*3;LR9=0-RK*3;LR4=X*RF;LR5=Y*RF;LRW=1;"
A$=A$+"FR1=0T10;LR4=R4+R8+RX;LR5=R5+R9+RY;LX=R4/RF;LY=R5/RF;NR1;"
A$=A$+"LRS=RS+1;IRS<16JC;LRS=12;C:"
A$=A$+"FR1=0T40;LR4=R4+R8+RX;LR5=R5+R9+RY;LX=R4/RF;LY=R5/RF;NR1;"
A$=A$+"JA;"
'
For I=12 To 15
Bob I,-16,-16,$5A
Amal I,A$
Amreg(I,0)=I
Next I
T=8*3
Degree
For I=0 To 31
X(I)=Cos(((31-I+9)*360)/32)*16
Y(I)=Sin(((31-I+9)*360)/32)*16
Next I
For I=0 To 25 : Amreg(I)=0 : Next I
Amreg(5)=16
Amreg(18)=12
Amal On
Fade 5 To -1
For I=0 To 5*16
View
Wait Vbl
Next I
Screen 1
Timer=0
Noise To %11
Repeat
If Jup(1) Then Play %11,20,0
Amreg(9)=X(Amreg(0))
Amreg(10)=Y(Amreg(0))
Amreg(25)=Timer/1500+1
If Amreg(23)>-T and Amreg(23)<T and Amreg(24)>-T and Amreg(24)<T and Jup(1)
Amreg(23)=Amreg(23)+X(Amreg(0))
Amreg(24)=Amreg(24)+Y(Amreg(0))
Else
Inc D
If D and 1
Amreg(23)=(Amreg(23)*7)/8
Amreg(24)=(Amreg(24)*7)/8
End If
End If
If Amreg(22)=1 Then Sam Play %1100,5,7000 : Amreg(22)=0
If Bob Col(4,5 To 11)
Dec E : Boom
For I=5 To 11 : Amreg(I,7)=Col(I) : Next I
End If
For MISSILE=12 To 15
If Bob Col(MISSILE,5 To 11)
Amreg(MISSILE,2)=1
Boom
For I=5 To 11
Amreg(I,7)=Col(I)
If I=10 and Col(I) : Add S,1000 : End If
Next I
Add S,(Timer/500+1)*10
End If
Next MISSILE
Locate 0,0
Print "Energy:";
Inverse On
Print Space$(E/7);
Inverse Off
Print " ";
Locate 62,0
Print "Score:";S;
Until E/7=0 or Mouse Key=3
Sam Play 5
Amreg(2)=1
For I=12 To 15 : Bob Off I : Next I
Exit If Mouse Key=3
F=0
Timer=0
Repeat
Locate 19,0 : Print " GAME";
Locate 55,0 : Print "OVER";
Wait 20
Locate 19,0 : Print " ";
Locate 55,0 : Print " ";
Wait 20
If Timer>100
Locate 19,0 : Print "PRESS";
Locate 55,0 : Print "FIRE";
Wait 20
Locate 19,0 : Print " ";
Locate 55,0 : Print " ";
Wait 20
F=Fire(1)
End If
Until F
Screen 0
Fade 5
For I=0 To 5*16
View
Wait Vbl
Next I
Bob Off : Wait 10
Amal Off : Wait 10
Loop
Screen 0
Wait 70
Fade 5
For I=0 To 5*16
View
Wait Vbl
Next I
X=Execall(-138)
End
'